Skip to main content

Задачи (Tasks)

Определение и принципы

Прочтите Определения и принципы Задачи (Tasks)

Правила

  • Все задачи должны наследоваться Boot\Abstracts\Tasks\Task.

Структура папок

 - usr
- modules
- {module-name}
- Tasks
- ConfirmUserEmailTask.php
- GenerateEmailConfirmationUrlTask.php
- SendConfirmationEmailTask.php
- ValidateConfirmationCodeTask.php
- SetUserEmailTask.php
- ...

Пример кода

Задача (Task)

class FindUserByIdTask extends Task
{
private $user;

public function __construct(User $user)
{
$this->user = $user;
}

public function run($id)
{
try {
$user = $this->user->find($id);
} catch (Exception $e) {
throw new UserNotFoundException();
}

return $user;
}
}

Вызов задачи из действия (Action)

class ValidateUserEmailAction extends Action
{
public function run($userId, $code)
{
app(ValidateConfirmationCodeTask::class)->run($userId, $code);
$user = app(FindUserByIdTask::class)->run($userId);
app(ConfirmUserEmailTask::class)->run($user);
}
}